package pe.edu.sistemas.postgrado.samupg.domain.model;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "documento", catalog = "bd_samupg")
public class Documento implements java.io.Serializable {

    private Integer documId;
    private FichaInscripcion fichaInscripcion;
    private String documDescrip;
    private String documRuta;
    private Date documFechaSubida;
    private Date documHoraSubida;

    public Documento() {
    }

    public Documento(FichaInscripcion fichaInscripcion) {
        this.fichaInscripcion = fichaInscripcion;
    }

    public Documento(FichaInscripcion fichaInscripcion, String documDescrip, String documRuta, Date documFechaSubida, Date documHoraSubida) {
        this.fichaInscripcion = fichaInscripcion;
        this.documDescrip = documDescrip;
        this.documRuta = documRuta;
        this.documFechaSubida = documFechaSubida;
        this.documHoraSubida = documHoraSubida;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "docum_id", unique = true, nullable = false)
    public Integer getDocumId() {
        return this.documId;
    }

    public void setDocumId(Integer documId) {
        this.documId = documId;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "docum_fi_id", nullable = false)
    public FichaInscripcion getFichaInscripcion() {
        return this.fichaInscripcion;
    }

    public void setFichaInscripcion(FichaInscripcion fichaInscripcion) {
        this.fichaInscripcion = fichaInscripcion;
    }

    @Column(name = "docum_descrip", length = 45)
    public String getDocumDescrip() {
        return this.documDescrip;
    }

    public void setDocumDescrip(String documDescrip) {
        this.documDescrip = documDescrip;
    }

    @Column(name = "docum_ruta", length = 45)
    public String getDocumRuta() {
        return this.documRuta;
    }

    public void setDocumRuta(String documRuta) {
        this.documRuta = documRuta;
    }

    @Temporal(TemporalType.DATE)
    @Column(name = "docum_fecha_subida", length = 10)
    public Date getDocumFechaSubida() {
        return this.documFechaSubida;
    }

    public void setDocumFechaSubida(Date documFechaSubida) {
        this.documFechaSubida = documFechaSubida;
    }

    @Temporal(TemporalType.TIME)
    @Column(name = "docum_hora_subida", length = 8)
    public Date getDocumHoraSubida() {
        return this.documHoraSubida;
    }

    public void setDocumHoraSubida(Date documHoraSubida) {
        this.documHoraSubida = documHoraSubida;
    }
}
